def longest_consecutive(nums):
    """
    问题：找到未排序数组中最长连续序列的长度（时间O(n)）
    思路：用哈希表存储数字，只对序列起点（x-1不存在）向后计数
    """
    num_set = set(nums)
    max_len = 0
    for num in num_set:
        # 若num-1不存在，说明num是序列起点
        if num - 1 not in num_set:
            current_num = num
            current_len = 1
            # 向后计算连续长度
            while current_num + 1 in num_set:
                current_num += 1
                current_len += 1
            max_len = max(max_len, current_len)
    return max_len

# 测试
print(longest_consecutive([100,4,200,1,3,2]))  # 输出：4（序列1,2,3,4）